package com.md.repository;


import com.md.base.BaseRepository;
import com.md.domain.model.po.RoleApis;
import com.md.model.bo.SizeBo;

import java.util.List;

/**
 * @author 刘骄阳
 * 2022-06-12 1:22
 */
public interface RoleApiRepository extends BaseRepository<RoleApis> {

  /**
   * 查询角色与api关系,根据apiId或者roleId
   *
   * @param apiId  apiId
   * @param roleId roleId
   * @return 角色与api的关系
   */
  List<RoleApis> queryByRoleIdOrApiId(Long apiId, Long roleId);

  /**
   * 根据角色id删除api权限
   *
   * @param roleIds           角色id列表
   * @param apiIds            权限列表
   * @param extendsParentRole 是否继承父级(true: 继承父级; false: 子集特有的)
   */
  void deleteByRoleIdAndApiIds(List<Long> roleIds, List<Long> apiIds, Boolean extendsParentRole);

  /**
   * 查询role下的api的数量
   *
   * @param roleIds 角色ids
   * @return 角色下api的数量
   */
  List<SizeBo> querySize(List<Long> roleIds);


}
